package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	// 九九乘法表
	fmt.Println("############ 第1题答案 ############")
	for m := 1; m <= 9; m++ {
		for n := 1; n <= m; n++ {
			fmt.Printf("%dx%d=%d\t", n, m, m*n)
		}
		fmt.Println()
		//time.Sleep(time.Duration(1) * time.Second)
	}

	// 生成随机数，奇数个求和不求积，偶数个求积不求和
	fmt.Println("############ 第2题答案 ############")
	r := rand.New(rand.NewSource(time.Now().UnixNano()))
	for x, sum, mul := 1, 0, 1; x <= 20; x++ {
		num := r.Intn(20)+1
		// switch 写法
		switch x % 2 {
		case 1:
			sum = sum + num
			fmt.Printf("这是第%d个数，随机数为：%d，累加求和为%d，奇数个不求积\n", x, num, sum)
		case 0:
			mul = mul * num
			fmt.Printf("这是第%d个数，随机数为：%d，累乘求积为：%d，偶数个不求和\n", x, num, mul)
		default:
			fmt.Println("出问题了，老铁~~")

		}
		// if 写法
		/*
			if x%2 == 1 {
				sum = sum + num
				fmt.Printf("这是第%d个数，随机数为：%d，累加求和为%d，奇数个不求积\n", x, num, sum)
			}else if x%2 == 0 {
				mul = mul * num
				fmt.Printf("这是第%d个数，随机数为：%d，累乘求积为：%d，偶数个不求和\n", x, num, mul)
			}else{
				fmt.Println("出问题了，老铁~~")
			}
		*/

	}
	fmt.Println("############ 第3题答案 ############")
	c := []int{}
	for a, b := 0, 1; b < 100; {
		a, b = b, a+b
		c = append(c, a)
	}
	fmt.Println(c)
}

// 批改意见
// 1. 随机数题目中，尽量不要在运行过程中修改顺序值i，可能会发生意想不到的错误，可以在生成随机数时就排除为0的值
// 马某人：rand.Intn（20）+1 得到[1,20]范围的随机数